home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 2).iso / 1107 / transfrm.txt < prev    next >
Encoding:
Text File  |  1996-09-09  |  2.5 KB  |  76 lines

  1.  
  2.  Command Line Options for MIDI Transformation Example with Midicable 2.4:
  3.  
  4. Convert Controller to start-stop: Ctrl #5,Chn1, 64..127 = start, 0..63=stop
  5.     TR1=FFFF40,B00540,FA,1 (start)
  6.     TR2=FFFF40,B00500,FC,1 (stop)
  7.  
  8. Convert a controller to NRPN (#1,all channels) (eg. AWE32 cutoff)
  9.     TR1=F0FF,B001,00637F,03 ( add NRPN MSB-127 )  
  10.     TR2=F0FF,B001,006215,03 ( add NRPN LSB-21 - AWE32 Filter Cutoff)  
  11.     TR3=F0FF,B001,000600,03 ( add Data MSB 0 )  
  12.     TR4=F0FF,B001,002680,01 ( convert Ctrl to Data LSB )  
  13.  
  14. Convert Note Velocity to additional Pitchbend (funny "detuned Piano")
  15.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  16.     TR2=F0,90,E00080,03         (add pitchbend w. velocity to ) 
  17.  
  18. Convert Note Velocity to (additional) channel Aftertouch. All Channels
  19.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  20.     TR2=F0,90,A081,03  (add channel pressure w/ Data2) 
  21.  
  22. Convert Note Velocity to Aftertouch and fix Note Velo to 127
  23.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  24.     TR2=F0,90,A081,03  (add channel pressure w/ Data2) 
  25.         TR3=F0,90,00807F,01 (for all NoteOn set Data2 to 127
  26.  
  27. Fix Note Velocity to 127
  28.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  29.         TR2=F0,90,00807F,01 (for all NoteOn set Data2 to 127
  30.     
  31. Convert Active Sense to Bass Drum, MidiClk to HiHat
  32.     TR1=FF,FE,99247F,03
  33.     TR2=FF,F8,992C40,03
  34.  
  35.  
  36.  
  37.  
  38. Reference:
  39.  
  40.     TRx=MASK,TRIGGER,VALUE,FUNC
  41.  
  42.     x = 1..4
  43.  
  44.         MASK
  45.         up to 3 bytes (and a 4th obsolete byte)
  46.  
  47.         TRIGGER
  48.         up to 3 bytes (and a 4th obsolete byte)
  49.     
  50.     This 2 patterns are used to compare the message:
  51.  
  52.     if ( (Message And MASK ) = TRIGGER ) then DoTransf(....)
  53.  
  54.     the AND is a bitwise AND between the two 32bit values.
  55.     MASK and TRIGGER must be written in MOTOROLA Notation,
  56.         This has the advantage, that 90 and 9000 and 900000 is the same.
  57.     
  58.     If this camparisom is true, then the Result is setted to VALUE,
  59.     but...
  60.         if first VALUE byte (status byte) is invalid (i,e, < $80)
  61.         then the message is not changed. 
  62.         If channel is not masked, then it is unchanged.
  63.  
  64.         if VALUE data bytes are invalid (Hi-bit set, $80), the original
  65.         data is kept. $81 uses the other data byte (data1<->data2).
  66.  
  67.     A value of 008080 means unchanged message. Cryptic, but it is.
  68.  
  69.         Some Patterns: 
  70.            to match Controller on all channels, use TR1=F0,B0,...  
  71.  
  72.  
  73. Some Warnings: 
  74.    You cannot split Notes by velocity into different Midi channels - 
  75.         The NoteOff-events  will get lost ! 
  76.